Time-marked hyperlinking to video content

ABSTRACT

In one example, a method includes: receiving from a first user interface a first input from a first user specifying a first particular instant in a video other than a beginning of the video; in response to the first input, generating by one or more computer systems first data for inclusion in a link to the video, the first data representing the first particular instant in the video and being operable automatically to direct playback of the video at a second user interface to start at the first particular instant in the video in response to a second user selecting the link at the second user interface; and communicating the first data to a link generator for inclusion in the link to the video.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of U.S. patentapplication Ser. No. 12/412,112, filed Mar. 26, 2009, which isincorporated by reference herein in its entirety.

TECHNICAL FIELD

The present disclosure relates generally to hyperlinking.

BACKGROUND

A first user may direct a second user to a video over the Internet bycommunicating to the second user a hyperlink to the video. The firstuser may communicate the hyperlink to the second user, for example, bye-mail or instant message (IM) or by inserting it into a web page ordocument accessible to the second user. The second user may click on orotherwise select the hyperlink (or an element, such as hypertext or agraphical element, embedding the hyperlink) and a web browser (such asGOOGLE CHROME) of the second user may fetch a web page (such as a webpage of the domain YOUTUBE.COM) that the hyperlink points to. The webpage may contain a video player that automatically or in response toinput from the second user (such as the second user clicking on orotherwise selecting the video player in the web page) starts playing thevideo from the beginning of video.

SUMMARY

In one embodiment, a method includes: receiving from a first userinterface a first input from a first user specifying a first particularinstant in a video other than a beginning of the video; in response tothe first input, generating by one or more computer systems first datafor inclusion in a link to the video, the first data representing thefirst particular instant in the video and being operable automaticallyto direct playback of the video at a second user interface to start atthe first particular instant in the video in response to a second userselecting the link at the second user interface; and communicating thefirst data to a link generator for inclusion in the link to the video.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example system for time-marked hyperlinking tovideo content.

FIG. 2 illustrates an example workflow system for audio indexing.

FIG. 3 illustrates an example user interface for time-markedhyperlinking to video content that utilizes audio indexing.

FIG. 4 illustrates an example method for time-marked hyperlinking tovideo content.

FIG. 5 illustrates an example computer system.

DESCRIPTION OF EXAMPLE EMBODIMENTS

FIG. 1 illustrates an example system 10 for time-marked hyperlinking tovideo content. In particular embodiments, a hyperlink is a codedreference to another location, such as a web page. The hyperlink mayappear as a link, for example, in an e-mail, an IM, a web page, or adocument. In addition or as an alternative, an element (such ashypertext or a graphical element) may embed the hyperlink. A user mayclick on or otherwise select the hyperlink or the element embedding thehyperlink and a web browser or other software application of the usermay fetch automatically a web page that the hyperlink points to. Herein,reference to a hyperlink encompasses a link, and vice versa, whereappropriate. System 10 includes a network 12 coupling one or moreclients 14 and one or more servers 16 to each other. In particularembodiments, network 12 is an intranet, an extranet, a virtual privatenetwork (VPN), a local area network (LAN), a wireless LAN (WLAN), a widearea network (WAN), a metropolitan area network (MAN), a portion of theInternet, or another network 12 or a combination of two or more suchnetworks 12. The present disclosure contemplates any suitable network12. Links 18 couple clients 14 and servers 16 to network 12 and coupleservers 16 to one or more databases of content 20. In particularembodiments, one or more links 18 each include one or more wireline,wireless, or optical links. In particular embodiments, one or more links18 each include an intranet, an extranet, a VPN, a LAN, a WLAN, a WAN, aMAN, a portion of the Internet, or another link 18 or a combination oftwo or more such links 18. The present disclosure contemplates anysuitable links 18. A link 18 may include one or more links 18.

In particular embodiments, a client 14 may enable a user at client 14 toaccess content 20 via one or more servers 16 and enable the user tocommunicate with one or more other users at one or more other clients14. Reference to a client 14 may encompass a user at client 14, and viceversa, where appropriate. A client 14 may be a computer system (such asa desktop or notebook computer system), a personal digital assistant(PDA), or a mobile telephone or other suitable client 14. A client 14may include one or more clients 14. A client 14 may receive input fromand communicate output to a user at client 14. As examples and not byway of limitation, client 14 may receive input from the user by way of akeyboard, mouse, or touch-screen and communicate output to the user byway of a display. Clients 14 need not be the same throughout system 10.One or more first clients 14 may differ from one or more second clients14. The present disclosure contemplates any suitable combination of anysuitable clients 14.

A client 14 may have a web browser, such as GOOGLE CHROME. A user atclient 14 may click on or otherwise select a hyperlink (or an element,such as hypertext or a graphical element, embedding the hyperlink) in ane-mail, an IM, a web page, or a document, and a Uniform Resource Locator(URL) or other address in the hyperlink may direct the web browser to aparticular server 16 (which may be web servers). The hyperlink mayinclude other information in addition to a URL or other address. The webbrowser may generate a Hyper Text Transfer Protocol (HTTP) request andcommunicate the HTTP request to server 16. Server 16 may accept the HTTPrequest and communicate to client 14 one or more Hyper Text MarkupLanguage (HTML) files responsive to the HTTP request. Client 14 mayrender a web page from the HTML files from server 16 for presentation tothe user. The present disclosure contemplates any suitable web pagefiles. As an example and not by way of limitation, web pages may renderfrom HTML files, Extensible HyperText Markup Language (XHTML) files, orExtensible Markup Language (XML) files, according to particular needs.Such pages may also execute scripts such as, by way of example and notby way of limitation, those written in JAVASCRIPT, JAVA, MICROSOFTSILVERLIGHT, combinations of markup language and scripts such as AJAX(Asynchronous JAVASCRIPT and XML), and the like. Herein, reference to aweb page encompasses one or more corresponding web page files (which abrowser may use to render the web page) and vice versa, whereappropriate.

The present disclosure contemplates any suitable web pages. As anexample and not by way of limitation, a web page hosted by a server 16may be static or dynamic. In particular embodiments, multiple web pagesstored together in a common directory at a server 16 make up a websiteor a portion of a website. In particular embodiments, a web pageincludes one or more elements. As an example and not by way oflimitation, presented (or rendered) elements of a web page may includestatic text, static images, animated images, audio, video, interactivetext, interactive illustrations, buttons, hyperlinks, or forms. Suchelements may each occupy a particular space on the web page whendisplayed. Internal (or hidden) elements of a web page may include, forexample and not by way of limitation, comments, meta elements,databases, diagramation and style information, and scripts, such asJAVASCRIPT. One or more elements of a web page may be inline frames(IFrames) which enable web developers to embed HTML documents into otherHTML documents. Herein, reference to a document may encompass a webpage, where appropriate. Reference to an element of a web page mayencompass one or more portions of a web page file for rendering theelement, and vice versa, where appropriate.

A server 16 may be a web or other server providing access to content 20.Content 20 may reside at one or more databases accessible to one or moreservers 16. Herein, reference to content encompasses audio, staticimages, video, web pages, and other content, where appropriate. A server16 may be unitary or distributed, spanning multiple computer systems ormultiple datacenters. The present disclosure contemplates any suitableservers 16. A server 16 may include one or more servers 16. Inparticular embodiments, one or more servers 16 each include one or moreservers or other computer systems for hosting web pages or particularelements of web pages. As described above, a server 16 may host HTMLfiles or other file types, or may dynamically create or constitute filesupon a request, and communicate them to clients 14 in response to HTTPor other requests from clients 14. In particular embodiments, a webbrowser at a client 14 may render a web page from one or more HTML filesreceived from one or more servers 16. In particular embodiments, aserver 16 may render a web page and then serve the rendered web page toa client 14 for display. When a web page renders, the browser or theserver rendering the web page may retrieve one or more elements of theweb page from one or more servers 16 providing access to particularcontent 20. As an example, multiple servers 16 operated by a singlepublisher may host elements of web pages of the publisher. For example,the publisher may operate one or more first servers 16 for video, one ormore second servers 16 for text, one or more third servers 16 forimages, and one or more fourth servers 16 for advertisements. Servers 16operated by the publisher may serve the domain of the publisher. When aweb browser at a client 14 renders a web page, the web browser mayretrieve and load one or more elements of the web page from one or moreservers 16, as directed by one or more HTML or other files for renderingthe web page. The web browser may retrieve and load one or more videofiles in the web page from one or more databases containing video.

FIG. 2 illustrates an example workflow system 30 for audio indexing. Inparticular embodiments, one or more servers 16 may use audio indexingfrom workflow system 30 to respond to generate particular web pages forcommunication to clients 14 or otherwise respond to particular requestsfrom clients 14, as described below. One or more videos available toclients 14 via servers 16 may be long and the information in them may bedense, which may make it difficult for a user at a client 14 to findvideos that are particularly relevant to the user and identify portionsof those videos that are particularly relevant to the user. Audioindexing may make this task easier by facilitating search and navigationof video material based on content. In particular embodiments,transcription and indexing of new video material facilitates searchingand a user interface facilitates navigating through search results. Inworkflow system 30, an inventory of videos (such as YOUTUBE videos)resides in database 32. For every video in the inventory, database 32contains the title, the description entered by an owner of the video,and a number of formats and locations where the video is available.Workflow system 30 periodically scans database 32 for changes (such asadditions or deletions) of entries in a corpus of video material ofinterest, and workflow manager 34 coordinates actions of audio subsystem36. Audio subsystem includes one or more waveform transcoders 38 and oneor more transcription clients 40. A waveform transcoder 38 may extractaudio signals from new videos, as directed by workflow manager 34, anddownsample them to a 16-kilohertz sampled, 16-bit linear signal.Workflow manger 34 may keep a queue of transcoded videos processed by atranscription client 40. Transcription clients 40 may transcribe audioby submitting the audio to Automatic Speech Recognition (ASR) service42. In particular embodiments, ASR service 42 segments the audio,discards music and noise, and applies multipass decoding to the audio totranscribe it. ASR service 42 may run at one or more computer systems inan infrastructure that supports scaling for large-scale processing.Transcription by ASR service 42 may generate a time-aligned transcriptand confidence scores for each word in the transcript. The transcriptand the scores may be stored in an utterance database 44 (which may belocal to workflow system 30) and may serve as the basis for indexserving (or information retrieval index) 46. Index serving 46 mayfacilitate both searching and navigating videos with user interface 48.Although the present disclosure describes and illustrates particularaudio indexing, the present disclosure contemplates any suitable audioindexing. In particular embodiments, time-marked hyperlinking to videocontent utilizes audio indexing. In particular embodiments, time-markedhyperlinking to video content does not utilize any audio indexing.

FIG. 3 illustrates an example user interface 48 for time-markedhyperlinking to video content that utilizes audio indexing. Userinterface 48 may be a Web-accessible user interface. In particularembodiments, a server 16 may generate user interface 48 and communicateit to a client 14 for rendering and display to a user at client 14,where the user may interact with user interface 48. User interface 48,when first displayed to the user, may be an automatically generated HTMLpage for a default or URL-configured query. Subsequent queries that theuser enters into the HTML page may be sent asynchronously by JAVASCRIPTin the HTML page and rendered on the client side without reloading theHTML page. In particular embodiments, user interface 48 may beaccessible to a user as an IGOOGLE gadget or through a web page atLABS.GOOGLE.COM. There may be multiple use cases for the transcript of avideo in user interface 48. In particular embodiments, user interface 48may facilitate a user finding a particularly relevant video andnavigating to particularly relevant portions of the video. In particularembodiments, user interface 48 may provide an overview of each searchresult that is sufficient to enable a user to choose among them. Inparticular embodiments, user interface 48 may more smoothly integratetime-aligned textual information with video playback for more targetedin-video navigation. Each of the search results may list key informationabout the video—such as thumbnail, title, duration, upload date, andapproximate number of spoken mentions. User interface 48 may utilizeAsynchronous JAVASCRIPT and Extensible Markup Language (XML) (AJAX)client-side processing, which may enable the user to click or otherwiseselect each result to see details and start playing the video withoutnavigating away from the results list or reloading the web page.

It may be difficult to integrate output from ASR service 42 with videoplayback to display all the details provided by the speech recognizer ina useable way. Often, a transcript lacks punctuation or contains errors,making it hard to read. However, the transcript may still improve thevideo-browsing experience. Particular embodiments apply the concept of asnippet to spoken content, making snippets with bolded hit termsavailable. As with text snippets, users will most likely only skim them,so a rough transcript will suffice in most cases. For a more detailedoverview, particular embodiments may return the ten (or other suitablenumber of) “best” snippets, selected primarily on the number of tokenhits in the snippet and the confidence scores associated with thosehits.

To facilitate faster video navigation, the snippets may index into thevideo and provide points to start playback at their occurrences. Inparticular embodiments, user interface 48 implements this through customJAVASCRIPT controls of a YOUTUBE video player, enabling any element onthe page seek to arbitrary points in the video. In FIG. 3, userinterface 48 integrates snippets 50 to player controls 52, which mayreduce the amount of space needed to display user interface 48, placingmarkers 54 on playbar 56 at the start time of each snippet 50. A usermay interact with playbar 56 by clicking on or otherwise selecting aparticular location along playbar 56 or moving slider 58 to a particularlocation along playbar 56. Clicking on a marker 54 corresponding to asnippet 50 may initiate playback two seconds before the start time of afirst word in snippet 50. This offset may reduce the chance of missingaudio that should be in snippet 50 but is not, possibly due to timingimprecision or seeking irregularities. Markers 54 may be yellow oranother suitably conspicuous color against playbar 56 and may provide agood one-glance overview of the frequency of the query terms in thevideo. Because markers 54 correspond to relevant video sections, markers54 may provide a high-level overview of token hits.

In particular embodiments, playbar 56 is a logical point of integrationof text to video timing, but may be less than ideal due to thecombination of small playbar size and dense transcript information.Especially for longer videos, a pixel in playbar 56 may encompass ten oreven more seconds, which may cause some markers to overlap with eachother, taking away from mouseover and browsing interaction with userinterface 48. Particular embodiments merge overlapping markers with eachother. Particular embodiments may show only one of two or moreoverlapping snippets and recalculate overlaps if the player is resized.In FIG. 3, user interface 48 utilizes space beneath the video player toprovide immediate access to all snippets 50. In particular embodiments,audio indexing facilitates searching within the selected video, whichmay be especially useful for longer videos, where the localization ofinformation is time consuming. This may be useful to people interestedin a particular topic covered in the video or to bloggers or reporterssearching for a particular quote. In particular embodiments, userinterface 48 enables a user to link to a video with a particular searchquery filled in.

In particular embodiments, user interface 48 may provide links to thesearch page as a sharing option. In particular embodiments, userinterface 48 enables a user to link to one or more particular instantsin a video. As an example and not by way of limitation, a user at userinterface 48 may select particular instants in the video and have userinterface 48 generate a link to the video that includes datarepresenting the particular instants in the video selected by the user.The user may select a particular instant in the video by left clickingon or otherwise selecting a marker 54 on playbar 56 that user interface48 has placed there automatically in response to a search inside thevideo after the user has navigated to the web page containing the video.In addition or as an alternative to user interface 48 placing a marker54 on playbar 56 in response to a search inside the video after the userhas navigated to the web page, user interface 48 may place a marker 54on playbar 56 in response to a search initiated at another web page thatled to the web page. Playbar 56 may already include one or more markers54 when the user navigates to the web page. In particular embodiments,the user may tag a marker 54 on playbar 56 as a selected instant in thevideo to distinguish it from other markers 54, which may be of lessinterest to the user for sharing purposes. The user may tag marker 54 asa selected instant in the video by right clicking on or otherwiseselecting marker 54 and, in a pop-up menu that appears in response tothe user selection, selecting an appropriate menu option. User interface48 may change a color of marker 54 (for example from yellow to red) toindicate that the user has tagged it as a selected instant in the video.

In addition or as an alternative to user interface 48 automaticallyplacing markers 54 on playbar 56, the user may manually place one ormore markers 54 on playbar 56. In particular embodiments, the user maymanually place a marker 54 at a particular location on playbar 56 (whichmay, for example, correspond to a particular time a particular point intime with respect to one or more of the beginning of the video or an endof the video or a particular frame of the video) by left clicking on orotherwise selecting the particular location on playbar 56 where the userwants marker 54 to be. In addition or as an alternative to a userselecting a location for a marker 54 on playbar 56 by left clicking onplaybar 56 at the location on playbar 56 where the user wants marker 54to be, the user may play the video and, during playback of the video,left click on or otherwise select a designated button or other icon onuser interface 48. In response to the user left clicking on or otherwiseselecting the designated button or other icon, user interface 48 mayplace a marker 54 at a location on playbar 56 corresponding to a pointin time in the playback of the video when the user left clicked on orotherwise selected the designated button or other icon. In particularembodiments, when a user manually places a marker 54 at a particularlocation on playbar 56, user interface 48 may automatically move marker54 back (e.g. toward the beginning of the video) a predetermined amountof time (such as two seconds) to account for a potential time delaybetween the user recognizing an instant in the video that is of interestto the user and the user selecting a particular location on playbar 56or selecting a designated button or other icon on user interface 48.

A marker 54 on playbar 56 may correspond to the beginning of a portionof the video that is particularly relevant to the user, e.g., a portionof the video that the user wants to share with one or more other users.In addition or as an alternative, a marker 54 on playbar 56 maycorrespond to an end of a portion of the video that is particularlyrelevant to the user. The user may tag a marker 54 as the beginning of aportion of the video that is particularly relevant to the user by rightclicking on or otherwise selecting marker 54 and, in a pop-up menu thatappears in response to the user selection, selecting an appropriate menuoption. Similarly, the user may tag a marker 54 as the end of a portionof the video that is particularly relevant to the user by right clickingon or otherwise selecting marker 54 and, in a pop-up menu that appearsin response to the user selection, selecting an appropriate menu option.The present disclosure contemplates any suitable menu option for anysuitable tagging of any suitable marker 54, according to particularneeds. In particular embodiments, the user may remove a marker 54 fromplaybar 56 by right clicking on or otherwise selecting marker 54 and, ina pop-up menu that appears in response to the user selection, selectingan appropriate menu option.

In particular embodiments, in addition or as an alternative to markers54 on playbar 56, user interface 48 may visually indicate particularinstants in the video selected by the user by populating a designatedarea of user interface 48 with text, icons, or both (which may besimilar to snippets 50 or player controls 52) representing theparticular instants selected by the user. As an example and not by wayof limitation, this designated area may be located immediately belowsnippets 50 in a demarcated space. The text, icons, or both in thedesignated area may facilitate the user keeping track of particularinstants in the video selected by the user.

In particular embodiments, user interface 48 may generate a link (suchas, for example, a URL) to the video that includes data representing oneor more instants in the video selected by the user. The user maycommunicate the link to another user and, when the other user clicks onor otherwise selects the link, a web browser or other softwareapplication of the other user may fetch automatically a web page thatthe hyperlink points to. Automatically or in response to input from theother user, instead of the video starting to play from a beginning ofthe video, the video may start playing for the user at the first of theparticular instants in the video represented by the data in the link. Ifthe data in the link includes a stopping point, the video may stopplaying once playback of the video has reached the stopping point. Userinterface 48 may generate a link to the video (with data representingthe instants in the video selected by the user) in response to a userselecting a link icon 60. In particular embodiments, a link generator(which may include a hardware, software, or embedded logic component orcombination of two or more such components for generating links inresponse to user input) may generate the link. The link generator may,but need not necessarily, be embedded in user interface 48. Userinterface 48 may output the link by displaying it in field 62. Inparticular embodiments, data representing an instant in a video may havethe format xxx#AmBs, where “xxx” is a document identifier (ID), “A”represents minutes, and “B” represents seconds. As an example and not byway of limitation, user interface 48 may include the data in a link to avideo as follows: http://video.google.com/videoplay?docid=-xxx#AmBs. Inparticular embodiments, a YOUTUBE link that has, for example, “#t=1m10s”appended to the URL for video playback may allow for playback startingwith a given time. Although the present disclosure describes aparticular format for data representing an instant in a video forinclusion in a link to the video, the present disclosure contemplatesany suitable format for representing an instant in a video for inclusionin any suitable link to the video.

Software supporting user interface 48 (e.g. software providing thefunctionality of user interface 47 described or illustrated herein) mayreside at a client 14, one or more servers 16, or both, according toparticular needs. As an example and not by way of limitation, a server16 may communicate one or more web page or other files to a client 14and client 14 may render user interface 48 for a user at client 14.Using software residing locally at client 14, client 14 may respond toinput provided by the user, including, for example, generating a link toa video that includes data representing one or more instants in a videoselected by the user. As another example, a server 16 may communicateone or more web page or other files to a client 14 and client 14 mayrender user interface 48 for a user at client 14. In response to inputprovided by the user at client 14, client 14 may communicate requests toserver 16. Using software at server 16, server 16 may generate aresponse (including, for example, a link to a video that includes datarepresenting one or more instants in a video as requested by the user)to the request from Client 14 and communicate the response to client 14for presentation to the user. The present disclosure contemplates anysuitable arrangement between a client 14 and one or more servers 16 orother devices for supporting user interface 48 and carrying out one ormore processes underlying the functionality of user interface 48described or illustrated herein.

FIG. 4 illustrates an example method for time-marked hyperlinking tovideo content. At step 100, a user at a client 14 navigates to a YOUTUBEweb page and accesses a video on the web page. At step 102, the userclicks on or otherwise selects a player on the web page, causing thevideo to start playing for the user. As an alternative, the video maystart playing automatically once the user has navigated to the web page.At step 104, while the video is playing, when the video reaches aparticular instant (which may be of particular interest to the user) theuser clicks on or otherwise selects playbar 56 in user interface 48 tomark the particular instant, which may generate a marker 54 on playbar56 corresponding to the particular instant in the video. The particularinstant may be a particular frame of the video, a particular point intime with respect to one or more of the beginning of the video or an endof the video, or a combination of the two. In particular embodiments,user interface 48 automatically rewinds the video a predetermined amountof time (such as, for example, three seconds) to account for a potentialdelay between the particular instant in the video that is of interest tothe user and the user selecting playbar 56 to mark it. The particularinstant in the video selected by the user may correspond to thebeginning of a particular portion of the video that is of particularinterest to the user. At step 106, as the video continues to play, ifthe video reaches another particular instant of particular interest tothe user, the method returns to step 104. The user may select one ormore other particular instants in the video. One or more of the otherparticular instants in the video selected by the user may eachcorrespond to an end of a particular portion of the video that is ofparticular interest to the user. One or more of the other particularinstants in the video selected by the user may each correspond to thebeginning of another particular portion of the video that is ofparticular interest to the user. At step 106, if there are no furtherparticular instants in the video that are of particular interest to theuser, the method proceeds to step 108, where user interface 48 generatesdata representing the one or more particular instants in the videoselected by the user for inclusion in a link to the video. In particularembodiments, the data may be formatted as described above. At step 110,user interface 48 communicates the data for inclusion in the link to thevideo, at which point the method ends.

In particular embodiments, user interface 48 may generate the link andinsert the data representing the one or more particular instants in thevideo selected by the user into the link. In particular embodiments,user interface 48 may communicate the data representing the one or moreparticular instants in the video selected by the user to a server 16which may generate the link and insert the data into the link. Asdescribed above, the data representing the one or more particularinstants in the video selected by the user may be inserted into the linkby embedding a data represent a particular instant corresponding to astart time using the following format:http://video.google.com/videoplay?docid=-xxx#AmBs, where “xxx” is adocument identifier (ID), “A” represents minutes, and “B” representsseconds. This can direct the playback to commence at A minutes B secondsfrom the beginning of the video. After the link has been generated andthe data representing the particular instants in the video selected bythe user have been added to the link, the user may communicate the linkto another user, for example, by e-mail, IM, or otherwise. As describedabove, the other user may receive and click on or otherwise select thelink, which may direct a web browser of the user to a web pagecontaining the video. Automatically or in response to input from theother user, the video may start playing for the user at the first of theone or more particular instants in the video represented by the data inthe link. If the data in the link includes a stopping point, the videomay stop playing once playback of the video has reached the stoppingpoint.

Although the present disclosure describes and illustrates particularsteps of the method of FIG. 4 as occurring in a particular order, thepresent disclosure contemplates any suitable steps of the method of FIG.4 occurring in any suitable order. Moreover, although the presentdisclosure describes and illustrates particular components carrying outparticular steps of the method of FIG. 4, the present disclosurecontemplates any suitable combination of any suitable componentscarrying out any suitable steps of the method of FIG. 4.

FIG. 5 illustrates an example computer system 500. The components inFIG. 5 are examples only and do not limit the scope of use orfunctionality of any hardware, software, embedded logic component, or acombination of two or more such components implementing particularembodiments. Computer system 500 may have any suitable physical form,including but not limited to one or more integrated circuits (ICs),printed circuit boards (PCBs), mobile handheld devices (such as mobiletelephones or PDAs), laptop or notebook computers, distributed computersystems, computing grids, or servers. Computer system 500 includes adisplay 532, one or more input devices 533 (which may, for example,include a keypad, a keyboard, a mouse, a stylus, etc.), one or moreoutput devices 534 (which may, for example, include one or morespeakers), one or more storage devices 535, and various storage media536.

Bus 540 connects a wide variety of subsystems. Herein, reference to abus encompasses one or more digital signal lines serving a commonfunction, where appropriate. Bus 540 may be any of several types of busstructures including a memory bus, a peripheral bus, or a local bususing any of a variety of bus architectures. As an example and not byway of limitation, such architectures include an Industry StandardArchitecture (ISA) bus, an Enhanced ISA (EISA) bus, a Micro ChannelArchitecture (MCA) bus, a Video Electronics Standards Association localbus (VLB), a Peripheral Component Interconnect (PCI) bus, a PCI-Express(PCI-X) bus, and an Accelerated Graphics Port (AGP) bus.

Processor(s) 501 (or central processing unit(s) (CPU(s))) optionallycontains a cache memory unit 502 for temporary local storage ofinstructions, data, or computer addresses. Processor(s) 501 are coupledto storage devices including memory 503. Memory 503 includes randomaccess memory (RAM) 504 and read-only memory (ROM) 505. ROM 505 may actto communicate data and instructions unidirectionally to processor(s)501, and RAM 504 may act to communicate data and instructionsbidirectionally with processor(s) 501. ROM 505 and RAM 504 may includeany suitable computer-readable media described below. Fixed storage 508is connected bidirectionally to processor(s) 501, optionally throughstorage control unit 507. Fixed storage 508 provides additional datastorage capacity and may also include any suitable computer-readablemedia described below. Storage 508 may be used to store operating system509, EXECs 510, data 511, application programs 512, and the like.Typically, storage 508 is a secondary storage medium (such as a harddisk) that is slower than primary storage. Information in storage 508may, in appropriate cases, be incorporated as virtual memory in memory503.

Processor(s) 501 is connected to multiple interfaces, such as graphicscontrol 521, video interface 522, input interface 523, output interface524, and storage interface 525. These interfaces are in turn connectedto appropriate devices, as illustrated. In general, an input/output(I/O) device may be a video display, a track ball, a mouse, a keyboard,a microphone, a touch-sensitive display, a transducer card reader, amagnetic- or paper-tape reader, a tablet, a stylus, a voice orhandwriting recognizer, a biometrics reader, another computer systems,or other suitable I/O device or a combination of two or more such I/Odevices. Processor(s) 501 may connect to another computer system or totelecommunications network 530 (which may include network 12) throughnetwork interface 520. With network interface 520, CPU 501 maycommunicate with network 530 in the course of performing one or moresteps of one or more processes described or illustrated herein,according to particular needs. Moreover, one or more steps of one ormore processes described or illustrated herein may execute solely at CPU501. In addition or as an alternative, one or more steps of one or moreprocesses described or illustrated herein may execute at multiple CPUs501 that are remote from each other across network 530.

In particular embodiments, when computer system 500 is connected tonetwork 530, computer system 500 may communicate with other devicesconnected to network 530. Communications to and from computer system 500may be sent through network interface 520. For example, networkinterface 520 may receive incoming communications (such as requests orresponses from other devices) in the form of one or more packets (suchas Internet Protocol (IP) packets) from network 530 and computer system500 may store the incoming communications in memory 503 for processing.Computer system 500 may similarly store outgoing communications (such asrequests or responses to other devices) in the form of one or morepackets in memory 503 and communicated to network 530 from networkinterface 520. Processor(s) 501 may access these communication packetsstored in memory 503 for processing.

Particular embodiments include storage with one or morecomputer-readable media encoding computer-executable code for carryingout computer-implemented operations. The media and computer-executablecode may be specially designed or created for particular embodiments orwell known and available to a person having ordinary skill in the art.Examples of computer-readable media include, but are not limited to,magnetic media (such as hard disks, floppy disks, and magnetic tape),optical media (such as CD-ROMs and holographic devices), magneto-opticalmedia (such as floptical disks), and hardware devices speciallyconfigured to store and execute code, such as application-specific ICs(ASICs), programmable logic devices (PLDs), and ROM and RAM devices.Examples of computer-code include machine code, such as code produced bya compiler, and files containing higher-level code that a computer mayexecute with an interpreter.

Computer system 500 may provide functionality as a result ofprocessor(s) 501 executing software embodied in one or morecomputer-readable storage media, such as memory 503. Memory 503 maystore software that implements particular embodiments, and processor(s)501 may execute the software. Memory 503 may read the software from oneor more other computer-readable media (such as mass storage device(s)535) or from one or more other sources through a suitable interface,such as network interface 520. The software may cause processor(s) 501to carry out one or more processes or one or more steps of one or moreprocesses described or illustrated herein. Carrying out such processesor steps may include defining data structures stored in memory 503 andmodifying the data structures as directed by the software. In additionor as an alternative, computer system 500 may provide functionality as aresult of logic hardwired or otherwise embodied in a circuit, which mayoperate in place of or together with software to execute one or moreprocesses or one or more steps of one or more processes described orillustrated herein. Herein, reference to software may encompass logic,and vice versa, where appropriate. Moreover, reference to acomputer-readable medium may encompass a circuit (such as an IC) storingsoftware for execution, a circuit embodying logic for execution, orboth, where appropriate. The present disclosure encompasses any suitablecombination of hardware, software, or both.

The present disclosure encompasses all changes, substitutions,variations, alterations, and modifications to the example embodimentsherein that a person having ordinary skill in the art would comprehend.Similarly, where appropriate, the appended claims encompass all changes,substitutions, variations, alterations, and modifications to the exampleembodiments herein that a person having ordinary skill in the art wouldcomprehend.

What is claimed is:
 1. A method comprising: displaying, by a clientdevice in a user interface, a video player playing a video; receiving,by the client device via the user interface, a first request to searchthe video without searching additional videos, the first requestincluding a search query; responsive to receiving the first request,displaying, by the client device in the user interface with the videoplayer, a search result indicating a portion of the video that includesaccompanying audio that matches the search query, the portion of thevideo associated with a starting playback time and a stopping playbacktime; displaying within a playbar of the video player, a marker thatvisually represents the portion of the video; displaying, by the clientdevice in the user interface, an interface element and an interfacefield; responsive to receiving a second request to view the portion ofthe video, skipping playback of the video on the video player from acurrent time to the starting playback time; and responsive to userselection of the interface element, generating a link to the portion ofthe video and displaying the link in the interface field, the linkincluding information indicating the starting playback time whereplayback of the video starts in response to user selection of the linkand including information indicating the stopping playback time whereplayback of the video stops in response to user selection of the linkand playback of the video reaching the stopping playback time, the videoincluding additional content past the stopping playback time.
 2. Themethod of claim 1, wherein the second request is received based on auser selecting the marker.
 3. The method of claim 1, wherein the secondrequest is received based on a user selecting an additional linkincluded in the search result.
 4. The method of claim 1, wherein thesearch result includes a transcript of the audio.
 5. The method of claim1, wherein the link is shared with a plurality of users through the userinterface.
 6. The method of claim 1, wherein the search result isidentified based on an audio index comprising a mapping between a timeassociated with the portion and text data derived from the portion ofthe video.
 7. A non-transitory computer-readable storage medium havingcomputer-executable instructions that configure one or more processorsto perform steps comprising: displaying, by a client device in a userinterface, a video player playing a video; receiving, by the clientdevice via the user interface, a first request to search the videowithout searching additional videos, the first request including asearch query; responsive to receiving the first request, displaying, bythe client device in the user interface with the video player, a searchresult indicating a portion of the video that includes accompanyingaudio that matches the search query, the portion of the video associatedwith a starting playback time and a stopping playback time; displayingwithin a playbar of the video player, a marker that visually representsthe portion of the video; displaying, by the client device in the userinterface, an interface element and an interface field; responsive toreceiving a second request to view the portion of the video, skippingplayback of the video on the video player from a current time to thestarting playback time; and responsive to user selection of theinterface element, generating a link to the portion of the video anddisplaying the link in the interface field, the link includinginformation indicating the starting playback time where playback of thevideo starts in response to user selection of the link and includinginformation indicating the stopping playback time where playback of thevideo stops in response to user selection of the link and playback ofthe video reaching the stopping playback time, the video includingadditional content past the stopping playback time.
 8. Thecomputer-readable storage medium of claim 7, wherein the second requestis received based on a user selecting the marker.
 9. Thecomputer-readable storage medium of claim 7, wherein the second requestis received based on a user selecting an additional link included in thesearch result.
 10. The computer-readable storage medium of claim 7,wherein the search result includes a transcript of the audio.
 11. Thecomputer-readable storage medium of claim 7, wherein the link is sharedwith a plurality of users through the user interface.
 12. Thecomputer-readable storage medium of claim 7, wherein the search resultis identified based on an audio index comprising a mapping between atime associated with the portion and text data derived from the portionof the video.
 13. A system comprising: one or more processors; and anon-transitory computer-readable storage medium havingcomputer-executable instructions that configure the one or moreprocessors to perform steps comprising: displaying in a user interface avideo player playing a video; receiving, via the user interface, a firstrequest to search the video without searching additional videos, thefirst request including a search query; responsive to receiving thefirst request, displaying in the user interface with the video player, asearch result indicating a portion of the video that includesaccompanying audio that matches the search query, the portion of thevideo associated with a starting playback time and a stopping playbacktime; displaying within a playbar of the video player, a marker thatvisually represents the portion of the video; displaying, by the clientdevice in the user interface, an interface element and an interfacefield; responsive to receiving a second request to view the portion ofthe video, skipping playback of the video on the video player from acurrent time to the starting playback time; and responsive to userselection of the interface element, generating a link to the portion ofthe video and displaying the link in the interface field, the linkincluding information indicating the starting playback time whereplayback of the video starts in response to user selection of the linkand including information indicating the stopping playback time whereplayback of the video stops in response to user selection of the linkand playback of the video reaching the stopping playback time, the videoincluding additional content past the stopping playback time.
 14. Thesystem of claim 13, wherein the search result includes a transcript ofthe audio.
 15. The system of claim 13, wherein the link is shared with aplurality of users through the user interface.
 16. The method of claim1, wherein the link is a Uniform Resource Locator.
 17. The method ofclaim 1, wherein the link includes an identifier associated with thevideo, the starting playback time, and the stopping playback time.